Timing in a data receiver, such as a receiver in a modem, must be synchronized with the symbols of the incoming data signal. Traditionally, this synchronization is accomplished by adjusting the phase of a sampling clock used to sample the incoming signal in order to synchronize it with the symbol clock. For this purpose, the symbol clock is recovered either from the analog input signal to the modem, prior to sampling, or from digital, post-sampling data. In either case, the object is to sample (or “strobe”) the input signal a predetermined number of times per symbol interval. The sampling clock is adjusted for optimal detection of the symbols.
In some more recent digital modem designs, however, the sampling clock is not synchronized with symbol timing and instead remains independent of the symbol clock. To compensate for the asynchrony of the sample and symbol clocks, the modem performs digital interpolation among the non-synchronized samples of the input signal in order to reconstruct the symbols. The sample rate and symbol rates are thus “incommensurate,” in the sense that the sample rate cannot be expressed as a rational multiple of the symbol rate (also referred to as the baud rate), and the sample time may never coincide exactly with desired strobe times. For optimal recovery of the symbols from the non-synchronously sampled signal, the interpolation must correct adaptively for the variable phase shift between the sampling clock and the symbol clock.
Various methods are known in the art for this sort of interpolation, which is also known as digital phase shifting. A survey of these methods is provided by Gardner in an article entitled “Interpolation in Digital Modems—Part I: Fundamentals,” in IEEE Transactions on Communications 41(3), pages 501–507 (March 1993), which is incorporated herein by reference. Gardner describes a convenient mathematical model for calculating the values of interpolants—the digital signal values that are generated in the digital modem in synchronization with the symbol rate—as a function of the non-synchronized input samples from which the interpolants are derived. The synchronous interpolants are processed to recover the symbols.
FIG. 1 is a schematic timing diagram useful in understanding the determination of these interpolants, as described by Gardner. The modem sampling clock, with period Ts, is shown in the figure by ticks 10. The interpolants are generated so as to represent the signal value at interpolation intervals Ti, shown by ticks 12. Typically, Ti=T/K, wherein T is the symbol period and K is a small integer. Given a stream of input samples x(mTs), the interpolants y(kTi) can be expressed by the following formula:
                              y          ⁡                      (                          kT              i                        )                          =                              ∑                          i              =                              T                1                                                    I              2                                ⁢                                          ⁢                                    x              ⁡                              [                                                      (                                                                  m                        k                                            -                      i                                        )                                    ⁢                                      T                    s                                                  ]                                      ·                                          h                I                            ⁡                              [                                                      (                                          i                      +                                              μ                        k                                                              )                                    ⁢                                      T                    s                                                  ]                                                                        (        1        )            Here mk is a “basepoint index,” given by mk=int[kTi/Ts], and μk is a fractional interval that reflects the current relative phase difference between the sampling clock and the symbol clock, given by μk=kTi/Ts−mk. An offset 14 between a given sampling clock tick 10 and the next symbol interpolation tick 12 is thus equal to μk·Ts, as shown in the figure. hI(t) is the analog impulse response of an interpolating filter used for computing the interpolants, and I1 and I2 are fixed finite numbers that determine the range of samples over which the filter is applied. In effect, the filter described by equation (1) is implemented as a digital finite impulse response (FIR) filter with I taps, I=I2−I1+1.
A variety of implementation schemes have been suggested for digital modems with incommensurate, non-synchronized sampling. These schemes are typically based either on precomputing and storing appropriate coefficients of the interpolation filter hI for a given, known sample rate and symbol rate, or on computing the coefficients on-line, generally using polynomial-based filters. In the above-mentioned article, Gardner notes that Ts should be adjusted so as to be nearly equal to Ti, so that μk will change only slowly, thus alleviating the need to compute a new value of μk for each sample. Exemplary implementation schemes for digital modems with interpolation filters are described by Erup et al., in “Interpolation in Digital Modems—Part II: Implementation and Performance,” in IEEE Transactions on Communications 41(6), pages 998–1008 (June, 1993), and by Laakso et al., in “Splitting the Unit Delay,” in IEEE Signal Processing Magazine (January, 1996), pages 30–60. Both of these articles are incorporated herein by reference.